The Storage Management Initiative Specification (SMI-S) provides a standard for information technology (IT) clients to follow when managing the storage devices and the like of any SMI-S compliant storage vendors. Among its many requirements, the SMI-S standard specifies some mandatory modification indication filters on specific properties (also referred to as attributes herein) of specific classes comprising Common Information Model (CIM) classes. When certain ones of these properties change, an event notification (referred to as a modification indication in SMI-S) needs to be sent to client subscribers.
For example, SMI-S requires that a management server send out a modification indication per client-side subscription whenever an instance of class CIM_StorageVolume has its OperationalStatus property changed. According to the specification, the modification indication needs to include two property values, namely SourceInstance (which in this example contains the changed, now current OperationalStatus property value for the CIM_StorageVolume instance), and PreviousInstance (for the previous OperationalStatus property value before the change occurred).
The underlying indication framework does not support sending the PreviousInstance value. Redesigning and implementing the framework to provide the PreviousInstance is possible, but would take an extremely significant amount of effort, and would be very risky with respect to being likely to introduce regressions. Another solution is to have a full cache containing all of the possibly needed information, and then use a polling thread to (periodically) detect the change by comparison against the current data. Such a solution is highly inefficient in performance, including in terms of memory and CPU usage, particularly when the number of instances is on the order of tens of thousands.